gorgonia.org/gorgonia@v0.9.17/cuda modules/src/sigmoid64.cu (about) 1 #define _USE_MATH_DEFINES 2 #include <math.h> 3 4 #ifdef __cplusplus 5 extern "C" { 6 #endif 7 8 9 __global__ void sigmoid64(double* A, int size) 10 { 11 int blockId = blockIdx.x + blockIdx.y * gridDim.x + gridDim.x * gridDim.y * blockIdx.z; 12 int idx = blockId * (blockDim.x * blockDim.y * blockDim.z) + (threadIdx.z * (blockDim.x * blockDim.y)) + (threadIdx.y * blockDim.x) + threadIdx.x; 13 if (idx >= size) { 14 return; 15 } 16 A[idx] = 1 / (1 + pow(M_E, (double)(-1 * A[idx]))); 17 } 18 19 #ifdef __cplusplus 20 } 21 #endif